package com.docmgmt.mvp.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.util.List;

/**
 * 提交AI反馈请求（AI-003）
 *
 * @author Dora
 */
@Data
@Schema(description = "提交AI反馈请求")
public class SubmitFeedbackRequest {

    @NotNull(message = "问答ID不能为空")
    @Schema(description = "问答ID", example = "12345", required = true)
    private Long conversationId;

    @NotBlank(message = "反馈类型不能为空")
    @Pattern(regexp = "positive|negative", message = "反馈类型只能是positive或negative")
    @Schema(description = "反馈类型", example = "negative", required = true, allowableValues = {"positive", "negative"})
    private String feedbackType;

    @Size(max = 500, message = "反馈原因不能超过500字符")
    @Schema(description = "反馈原因（negative时必填）", example = "答案与我的问题不符，引用的文档也不相关")
    private String reason;

    @Schema(description = "反馈标签列表", example = "[\"inaccurate\", \"irrelevant_references\"]")
    private List<String> tags;
}
